import Main from '@/components/main'
import parentView from '@/components/parent-view'

/**
 * iview-admin中meta除了原生参数外可配置的参数:
 * meta: {
 *  title: { String|Number|Function }
 *         显示在侧边栏、面包屑和标签栏的文字
 *         使用'{{ 多语言字段 }}'形式结合多语言使用，例子看多语言的路由配置;
 *         可以传入一个回调函数，参数是当前路由对象，例子看动态路由和带参路由
 *  hideInMenu: (false) 设为true后在左侧菜单不会显示该页面选项
 *  notCache: (false) 设为true后页面不会缓存
 *  access: (null) 可访问该页面的权限数组，当前路由设置的权限会影响子路由
 *  icon: (-) 该页面在左侧菜单、面包屑和标签导航处显示的图标，如果是自定义图标，需要在图标名称前加下划线'_'
 *  beforeCloseName: (-) 设置该字段，则在关闭当前tab页时会去'@/router/before-close.js'里寻找该字段名对应的方法，作为关闭前的钩子函数
 * }
 */

export default [
  {
    path: '/login',
    name: 'login',
    meta: {
      title: 'Login - 登录',
      hideInMenu: true
    },
    component: () => import('@/view/login/login.vue')
  },
  {
    path: '/',
    name: '_home',
    redirect: '/home',
    component: Main,
    meta: {
      hideInMenu: true,
      notCache: true
    },
    children: [
      {
        path: '/home',
        name: 'home',
        meta: {
          hideInMenu: true,
          title: '首页',
          notCache: true,
          icon: 'md-home'
        },
        component: () => import('@/view/single-page/home')
      }
    ]
  },
  // {
  //   path: '',
  //   name: 'doc',
  //   meta: {
  //     title: '文档',
  //     href: 'https://lison16.github.io/iview-admin-doc/#/',
  //     icon: 'ios-book'
  //   }
  // },
  // {
  //   path: '/work_order',
  //   name: 'work_order',
  //   meta: {
  //     icon: 'ios-paper',
  //     title: '工单管理'
  //   },
  //   component: Main,
  //   children: [
  //     {
  //       path: 'my-order',
  //       name: 'my-order',
  //       meta: {
  //         icon: 'ios-paper',
  //         title: '我的工单'
  //       },
  //       component: () => import('@/view/work-order/my-order.vue')
  //     }
  //   ]
  // },
  {
    path: '/files',
    name: 'files',
    meta: {
      icon: 'ios-briefcase',
      title: '文件管理'
    },
    component: Main,
    children: [
      {
        path: 'upload',
        name: 'upload',
        meta: {
          icon: 'logo-buffer',
          title: '文件管理'
        },
        component: () => import('@/view/files/file.vue')
      }
    ]
  },
  {
    path: '/aws_steering',
    name: 'aws_steering',
    meta: {
      icon: 'ios-browsers',
      title: '导航管理'
    },
    component: Main,
    children: [
      {
        path: 'steering',
        name: 'steering',
        meta: {
          icon: 'md-barcode',
          title: '导航管理'
        },
        component: () => import('@/view/tools/steering.vue')
      }
    ]
  },
  {
    path: '/database',
    name: 'database',
    meta: {
      icon: 'logo-dropbox',
      title: '数据服务'
    },
    component: Main,
    children: [
      {
        path: 'address',
        name: 'address',
        meta: {
          icon: 'logo-xbox',
          title: '地址管理'
        },
        component: () => import('@/view/database/address.vue')
      },
      {
        path: 'cache',
        name: 'cache',
        meta: {
          icon: 'ios-trash',
          title: '缓存清理'
        },
        component: () => import('@/view/database/clean_cache.vue')
      }
    ]
  },
  {
    path: '/project',
    name: 'project',
    meta: {
      icon: 'md-menu',
      title: '发布管理'
    },
    component: Main,
    children: [
      {
        path: 'config',
        name: 'deploy_config',
        meta: {
          icon: 'md-bookmarks',
          title: '部署设置'
        },
        component: () => import('@/view/deploy/config.vue')
      },
      {
        path: 'deploy',
        name: 'deploy',
        meta: {
          icon: 'md-square',
          title: '服务管理'
        },
        component: () => import('@/view/deploy/deploy.vue')
      },
      {
        path: 'histroy',
        name: 'history',
        meta: {
          icon: 'md-pie',
          title: '发布历史'
        },
        component: () => import('@/view/deploy/history.vue')
      }
    ]
  },
  {
    path: '/image',
    name: 'image',
    meta: {
      icon: 'md-mail',
      title: '镜像管理'
    },
    component: Main,
    children: [
      {
        path: 'push',
        name: 'push',
        meta: {
          icon: 'md-navigate',
          title: '推送管理'
        },
        component: () => import('@/view/images/push.vue')
      },
      {
        path: 'record',
        name: 'record',
        meta: {
          icon: 'ios-paper',
          title: '推送日志'
        },
        component: () => import('@/view/images/record.vue')
      }
    ]
  },
  {
    path: '/application',
    name: 'application',
    meta: {
      icon: 'logo-xbox',
      title: '线下集群'
    },
    component: Main,
    children: [
      {
        path: 'namespace',
        name: 'namespace',
        meta: {
          icon: 'ios-thunderstorm',
          title: '应用环境'
        },
        component: () => import('@/view/application/namespace.vue')
      },
      {
        path: 'container',
        name: 'container',
        meta: {
          icon: 'md-trophy',
          title: '容器管理'
        },
        component: () => import('@/view/application/container.vue')
      },
      {
        path: 'discover',
        name: 'discover',
        meta: {
          icon: 'md-wifi',
          title: '服务发现'
        },
        component: () => import('@/view/application/router.vue')
      }
    ]
  },
  {
    path: '/production',
    name: 'production',
    meta: {
      icon: 'ios-square',
      title: '线上集群'
    },
    component: Main,
    children: [
      {
        path: 'cluster',
        name: 'cluster',
        meta: {
          icon: 'ios-thunderstorm',
          title: '集群管理'
        },
        component: () => import('@/view/production/cluster.vue')
      },
      {
        path: 'deployment',
        name: 'deployment',
        meta: {
          icon: 'ios-pulse',
          title: '部署管理'
        },
        component: () => import('@/view/production/deployment.vue')
      },
      {
        path: 'containers',
        name: 'containers',
        meta: {
          icon: 'md-trophy',
          title: '容器组'
        },
        component: () => import('@/view/production/containers.vue')
      },
      {
        path: 'service',
        name: 'service',
        meta: {
          icon: 'md-trophy',
          title: '服务管理'
        },
        component: () => import('@/view/production/service.vue')
      },
      {
        path: 'ingress',
        name: 'ingress',
        meta: {
          icon: 'md-wifi',
          title: '路由管理'
        },
        component: () => import('@/view/production/ingress.vue')
      }
      // {
      //   path: 'config',
      //   name: 'config',
      //   meta: {
      //     icon: 'md-git-compare',
      //     title: '配置刷新'
      //   },
      //   component: () => import('@/view/production/configure.vue')
      // }
    ]
  },
  {
    path: '/system',
    name: 'system',
    meta: {
      icon: 'md-settings',
      title: '系统管理'
    },
    component: Main,
    children: [
      {
        path: 'sysconfig',
        name: 'sysconfig',
        meta: {
          icon: 'ios-construct',
          title: '系统设置'
        },
        component: () => import('@/view/system/sysconfig.vue')
      },
      {
        path: 'user',
        name: 'user',
        meta: {
          icon: 'ios-people',
          title: '用户管理'
        },
        component: () => import('@/view/system/users.vue')
      },
      {
        path: 'access_group',
        name: 'access_group',
        meta: {
          icon: 'md-options',
          title: '权限管理'
        },
        component: () => import('@/view/system/access_group.vue')
      }
    ]
  },
  {
    path: '/401',
    name: 'error_401',
    meta: {
      hideInMenu: true
    },
    component: () => import('@/view/error-page/401.vue')
  },
  {
    path: '/500',
    name: 'error_500',
    meta: {
      hideInMenu: true
    },
    component: () => import('@/view/error-page/500.vue')
  },
  {
    path: '*',
    name: 'error_404',
    meta: {
      hideInMenu: true
    },
    component: () => import('@/view/error-page/404.vue')
  }
]
